package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.TrendData;
import com.ruoyi.system.domain.TrendType;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 趋势图管理Mapper接口
 * 
 * @author cjie
 * @date 2022-11-30
 */
public interface TrendTypeMapper {
    /**
     * 查询趋势图管理
     * 
     * @param trendId 趋势图管理ID
     * @return 趋势图管理
     */
     TrendType selectTrendTypeById(Long trendId);

    List<TrendData> selectTrendDataByType(@Param("trendType") String trendType, @Param("limit")Integer limit);

    TrendType selectTrendTypeByType(String trendType);

    /**
     * 查询趋势图管理列表
     * 
     * @param trendType 趋势图管理
     * @return 趋势图管理集合
     */
     List<TrendType> selectTrendTypeList(TrendType trendType);

    /**
     * 新增趋势图管理
     * 
     * @param trendType 趋势图管理
     * @return 结果
     */
     int insertTrendType(TrendType trendType);

    /**
     * 修改趋势图管理
     * 
     * @param trendType 趋势图管理
     * @return 结果
     */
     int updateTrendType(TrendType trendType);

    /**
     * 删除趋势图管理
     * 
     * @param trendId 趋势图管理ID
     * @return 结果
     */
     int deleteTrendTypeById(Long trendId);

    /**
     * 批量删除趋势图管理
     * 
     * @param trendIds 需要删除的数据ID
     * @return 结果
     */
     int deleteTrendTypeByIds(Long[] trendIds);

    /**
     * 批量删除趋势图数据
     * 
     * @param customerIds 需要删除的数据ID
     * @return 结果
     */
     int deleteTrendDataByTrendTypes(Long[] trendIds);
    
    /**
     * 批量新增趋势图数据
     * 
     * @param trendDataList 趋势图数据列表
     * @return 结果
     */
     int batchTrendData(List<TrendData> trendDataList);
    

    /**
     * 通过趋势图管理ID删除趋势图数据信息
     * 
     * @param trendId 趋势图数据ID
     * @return 结果
     */
     int deleteTrendDataByTrendType(String trendType);

    int updateTrendData(TrendData trendData);

    int insertTrendData(TrendData trendData);

    List<TrendData> selectTrendDataList(TrendData trendData);

    TrendData selectTrendTypeDataByTypeAndKey(@Param("trendType") String trendType, @Param("key")String key);

    List<Map<String, Object>> selectDataList(@Param(value="sqlStr") String sqlStr);
}
